package com.jza04.flightbooking.service;

import com.jza04.flightbooking.entity.Ticket;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 购票服务接口
 */
public interface TicketService {
    
    /**
     * 查询所有购票记录
     */
    List<Ticket> findAllTickets();
    
    /**
     * 根据ID查询购票记录
     */
    Ticket findTicketById(Integer ticketId);
    
    /**
     * 根据航班ID查询购票记录
     */
    List<Ticket> findTicketsByFlightId(String flightId);
    
    /**
     * 根据旅客ID查询购票记录
     */
    List<Ticket> findTicketsByPassengerId(Integer passengerId);
    
    /**
     * 购票
     */
    boolean bookTicket(Ticket ticket);
    
    /**
     * 更新购票记录
     */
    boolean updateTicket(Ticket ticket);
    
    /**
     * 取消购票
     */
    boolean cancelTicket(Integer ticketId);
    
    /**
     * 更新票状态
     */
    boolean updateTicketStatus(Integer ticketId, String status);
    
    /**
     * 获取总收入
     */
    BigDecimal getTotalRevenue();
    
    /**
     * 获取指定时间范围内的总收入
     */
    BigDecimal getRevenueByDateRange(Date startDate, Date endDate);
    
    /**
     * 获取按航班统计的收入
     */
    Map<String, BigDecimal> getRevenueByFlight();
} 